package com.cucn.ingmall.search.dto;

import com.cucn.common.to.es.SkuEsModel;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * 检索完成后返回的数据模型
 *
 * @author KouChaoJie
 * @since: 2021/12/28 16:32
 */
@Data
public class SearchResponseDTO {
    /**
     * 商品信息
     */
    private List<SkuEsModel> products;

    /**
     * 以下是分页信息
     * 当前页码
     */
    private Integer pageNum;
    /**
     * 总记录数
     */
    private Long total;
    /**
     * 总页码
     */
    private Integer totalPages;
    private List<Integer> pageNavs;

    /**
     * 当前查询结果所涉及的所有品牌信息
     */
    private List<BrandVO> brands;

    /**
     * 当前查询结果所涉及的所有商品的属性
     */
    private List<AttrVO> attrs;

    /**
     * 当前查询结果所涉及的所有分类信息
     */
    private List<CatalogVO> catalogs;

    //以上是返回给页面的信息

    /**
     * 面包屑导航
     * 设置默认值因为属性面包屑导航可能会没有
     */
    private List<NavVO> nav = new ArrayList<>();
    private List<Long> attrIds=new ArrayList<>();

    @Data
    public static class NavVO {
        /**
         * 导航名称
         */
        private String navName;
        /**
         * 导航的值
         */
        private String navValue;
        /**
         * 导航链接
         */
        private String link;
    }

    @Data
    public static class BrandVO {
        /**
         * 品牌id
         */
        private Long brandId;
        /**
         * 品牌名称
         */
        private String brandName;
        /**
         * 品牌logo图
         */
        private String brandImg;
    }

    @Data
    public static class AttrVO {
        /**
         * 属性id
         */
        private Long attrId;
        /**
         * 属性名称
         */
        private String attrName;
        /**
         * 属性值
         */
        private List<String> attrValue;
    }

    @Data
    public static class CatalogVO {
        /**
         * 分类id
         */
        private Long catalogId;
        /**
         * 分类名称
         */
        private String catalogName;
    }
}
